HAL DCMI constants migration

This section provides information about the HAL DCMI constants migration.

HAL DCMI byte stream modes output enable bit settings constants

In HAL1, ODD/EVEN byte start was controlled by two standalone defines ( DCMI_OEBS_EVEN / DCMI_OEBS_ODD).

In HAL2, this control is integrated into the data selection feature through the “byte decimation” enumerators( HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_2_EVEN / HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_2_ODD).

HAL1

HAL2




#define DCMI_BSM_ALL

#define DCMI_BSM_OTHER
/* and */
#define DCMI_OEBS_EVEN

#define DCMI_BSM_OTHER
/* and */
#define DCMI_OEBS_ODD

#define DCMI_BSM_ALTERNATE_4
/* and */
#define DCMI_OEBS_EVEN

#define DCMI_BSM_ALTERNATE_4
/* and */
#define DCMI_OEBS_ODD

#define DCMI_BSM_ALTERNATE_2
/* and */
#define DCMI_OEBS_EVEN

#define DCMI_BSM_ALTERNATE_2
/* and */
#define DCMI_OEBS_ODD
typedef enum
{

  HAL_DCMI_BYTE_CAPTURE_ALL,


  HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_2_EVEN,



  HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_2_ODD,



  HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_4_EVEN,



  HAL_DCMI_BYTE_CAPTURE_1BYTE_OUT_4_ODD,



  HAL_DCMI_BYTE_CAPTURE_2BYTE_OUT_4_EVEN,



  HAL_DCMI_BYTE_CAPTURE_2BYTE_OUT_4_ODD


} hal_dcmi_byte_decimation_mode_t;

Related concepts:


HAL DCMI line synchronization modes constants

HAL1 exposed line selection through two mechanisms: a start position ( DCMI_OELS_EVEN / DCMI_OELS_ODD) and a selection mode ( DCMI_LSM_ALTERNATE_2).

HAL2 consolidates these into a single “line decimation” setting ( HAL_DCMI_LINE_CAPTURE_1LINE_OUT_2_EVEN / HAL_DCMI_LINE_CAPTURE_1LINE_OUT_2_ODD).

HAL1

HAL2



#define DCMI_LSM_ALL

#define DCMI_LSM_ALTERNATE_2
/* and */
#define DCMI_OELS_ODD

#define DCMI_LSM_ALTERNATE_2
/* and */
#define DCMI_OELS_EVEN
typedef enum
{
  HAL_DCMI_LINE_CAPTURE_ALL,


  HAL_DCMI_LINE_CAPTURE_1LINE_OUT_2_ODD,



  HAL_DCMI_LINE_CAPTURE_1LINE_OUT_2_EVEN

} hal_dcmi_line_decimation_mode_t;

Related concepts:


HAL DCMI control register frame settings constants

HAL1

HAL2



#define DCMI_CR_ALL_FRAME
#define DCMI_CR_ALTERNATE_2_FRAME
#define DCMI_CR_ALTERNATE_4_FRAME
typedef enum
{
  HAL_DCMI_FRAME_CAPTURE_ALL,
  HAL_DCMI_FRAME_CAPTURE_1FRAME_OUT_2,
  HAL_DCMI_FRAME_CAPTURE_1FRAME_OUT_4
} hal_dcmi_frame_capture_rate_t;

Related concepts:


HAL DCMI extended data bit flags constants

HAL1

HAL2



#define DCMI_EXTEND_DATA_8B
#define DCMI_EXTEND_DATA_10B
#define DCMI_EXTEND_DATA_12B
#define DCMI_EXTEND_DATA_14B
typedef enum
{
  HAL_DCMI_EXTENDED_DATA_8_BITS,
  HAL_DCMI_EXTENDED_DATA_10_BITS,
  HAL_DCMI_EXTENDED_DATA_12_BITS,
  HAL_DCMI_EXTENDED_DATA_14_BITS
} hal_dcmi_extended_data_mode_t;

Related concepts:


HAL DCMI status flags constants

In HAL1, raw interrupt flags and masked interrupt flags were represented by separate defines (e.g., DCMI_FLAG_FRAMERI vs DCMI_FLAG_FRAMEMI). In HAL2, raw and masked flags are unified under single defines (e.g., HAL_DCMI_FLAG_PIPE0_FRAME).

HAL1

HAL2

#define DCMI_FLAG_HSYNC
#define DCMI_FLAG_VSYNC
#define DCMI_FLAG_FNE

#define DCMI_FLAG_FRAMERI
#define DCMI_FLAG_FRAMEMI

#define DCMI_FLAG_OVRRI
#define DCMI_FLAG_OVRMI

#define DCMI_FLAG_ERRRI
#define DCMI_FLAG_ERRMI

#define DCMI_FLAG_VSYNCRI
#define DCMI_FLAG_VSYNCMI

#define DCMI_FLAG_LINERI
#define DCMI_FLAG_LINEMI
#define HAL_DCMI_FLAG_PIPE0_HSYNC
#define HAL_DCMI_FLAG_PIPE0_VSYNC_PIN
#define HAL_DCMI_FLAG_PIPE0_FNE

#define HAL_DCMI_FLAG_PIPE0_FRAME


#define HAL_DCMI_FLAG_PIPE0_OVR


#define HAL_DCMI_FLAG_PARALLEL_SYNC_ERR


#define HAL_DCMI_FLAG_PIPE0_VSYNC


#define HAL_DCMI_FLAG_PIPE0_LINE

HAL DCMI horizontal synchronization polarity options constants

HAL1

HAL2



#define DCMI_HSPOLARITY_LOW
#define DCMI_HSPOLARITY_HIGH
typedef enum
{
  HAL_DCMI_HSYNC_LOW,
  HAL_DCMI_HSYNC_HIGH
} hal_dcmi_hsync_polarity_t;

Related concepts:


HAL DCMI interrupt identifiers constants

HAL1

HAL2

#define DCMI_IT_FRAME
#define DCMI_IT_OVR
#define DCMI_IT_ERR
#define DCMI_IT_VSYNC
#define DCMI_IT_LINE
#define HAL_DCMI_IT_PIPE0_FRAME
#define HAL_DCMI_IT_PIPE0_OVR
#define HAL_DCMI_IT_PARALLEL_SYNC_ERR
#define HAL_DCMI_IT_PIPE0_VSYNC
#define HAL_DCMI_IT_PIPE0_LINE

Related concept:


HAL DCMI JPEG mode settings constants

HAL1

HAL2



#define DCMI_JPEG_DISABLE
#define DCMI_JPEG_ENABLE
typedef enum
{
  HAL_DCMI_FORMAT_UNCOMPRESSED,
  HAL_DCMI_FORMAT_JPEG
} hal_dcmi_format_t;

Related concepts:


HAL DCMI operating modes constants

HAL1

HAL2



#define DCMI_MODE_CONTINUOUS
#define DCMI_MODE_SNAPSHOT
typedef enum
{
  HAL_DCMI_CAPTURE_CONTINUOUS,
  HAL_DCMI_CAPTURE_SNAPSHOT
} hal_dcmi_capture_t;

Related concepts:


HAL DCMI pixel clock polarity options constants

HAL1

HAL2



#define DCMI_PCKPOLARITY_FALLING
#define DCMI_PCKPOLARITY_RISING
typedef enum
{
  HAL_DCMI_PIXEL_CLOCK_FALLING,
  HAL_DCMI_PIXEL_CLOCK_RISING
} hal_dcmi_pixel_clock_polarity_t;

Related concepts:


HAL DCMI synchronization settings constants

HAL1

HAL2



#define DCMI_SYNCHRO_HARDWARE
#define DCMI_SYNCHRO_EMBEDDED
typedef enum
{
  HAL_DCMI_SYNC_HARDWARE,
  HAL_DCMI_SYNC_EMBEDDED
} hal_dcmi_sync_mode_t;

Related concepts:


HAL DCMI vertical synchronization polarity options constants

HAL1

HAL2



#define DCMI_VSPOLARITY_LOW
#define DCMI_VSPOLARITY_HIGH
typedef enum
{
  HAL_DCMI_VSYNC_LOW,
  HAL_DCMI_VSYNC_HIGH
} hal_dcmi_vsync_polarity_t;

Related concepts:


HAL DCMI window configuration settings constants

HAL1

HAL2

#define DCMI_WINDOW_COORDINATE
#define DCMI_WINDOW_HEIGHT

Removed; These defines were used internally in HAL1 and do not impact user-level operations.


HAL DCMI error codes constants

HAL1

HAL2

#define HAL_DCMI_ERROR_NONE
#define HAL_DCMI_ERROR_OVR
#define HAL_DCMI_ERROR_SYNC
#define HAL_DCMI_ERROR_DMA

#define HAL_DCMI_ERROR_TIMEOUT
#define HAL_DCMI_ERROR_INVALID_CALLBACK
#define HAL_DCMI_ERROR_NONE
#define HAL_DCMI_ERROR_PIPE0_OVR
#define HAL_DCMI_ERROR_PARALLEL_SYNC
#define HAL_DCMI_ERROR_PIPE0_DMA

Removed; These kinds of logical errors are reported by the direct function return.

Related concepts:


HAL DCMI position constants

HAL1

HAL2

#define DCMI_POSITION_CWSIZE_VLINE
#define DCMI_POSITION_CWSTRT_VST
#define DCMI_POSITION_ESCR_FEC
#define DCMI_POSITION_ESCR_LEC
#define DCMI_POSITION_ESCR_LSC

Not yet implemented in HAL2.